package ru.pb.game.network.engine.client.packets.sendable;

import ru.pb.game.network.engine.client.packets.GameServerToClientPacket;
import ru.pb.game.objects.model.players.Player;
import ru.pb.game.objects.model.room.Room;

public class PROTOCOL_LOBBY_CREATE_ROOM_ACK extends GameServerToClientPacket
{
	private Room _room;

	public PROTOCOL_LOBBY_CREATE_ROOM_ACK(Room r)
	{
		_room = r;
	}

	@Override
	public void writeImpl()
	{
		writeH(2826);

		writeD(_room.getRoomId());
		writeD(_room.getRoomId());

		writeS(_room.name, Room.NET_ROOM_NAME_SIZE); // Название комнаты
		writeC(_room.map_id); // ID Карты
		writeC(); // Неясно
		writeC(_room.stage4v4); // 4x4

		writeC(_room.room_type); // Тип игры.
		writeC(_room.getAllPlayers().size()); // Хз 0
		writeC(); // ХЗ
		writeC(_room.getSlotCount()); // кол-во слотов.

		writeC(5); // хз Пинг?
		writeC(_room.allweapons); // Ограничение по оружию
		writeC(_room.random_map); // Случайная карта - 2
		writeC(_room.special); // Специальный тип боя)

		writeS(_room.getLeader().getName(), Player.NET_NICK_NAME_SIZE); // Непонятно всегда нули

		writeC(_room.killtime); // Условия - количество убийств(Маска, складываются порядковые номера)
		writeC();
		writeC();
		writeC();
		writeC(_room.limit); // Лимит на вход
		writeC(_room.seeConf); // Настройки наблюдения
		writeH(_room.autobalans); // Автобаланс
		
		_log.info("Player create Room id=" + _room.getRoomId() + " player=" + _room.getLeader().getName() + " special=" + _room.special);
	
		//_log.info(message)
		_log.info("Leader: " + _room.getLeader().getName());
	
	}
}